/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2001 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.db.explorer.actions; import java.io.*; import java.beans.*; import java.util.*; import java.sql.*; import org.netbeans.lib.ddl.impl.*; import org.openide.*; import org.openide.util.*; import org.openide.util.actions.*; import org.openide.nodes.*; import org.netbeans.modules.db.explorer.*; import org.netbeans.modules.db.explorer.nodes.*; import org.netbeans.modules.db.explorer.infos.*; import org.netbeans.modules.db.explorer.dlg.*; public class ConnectAction extends DatabaseAction { static final long serialVersionUID =-6822218300035053411L; protected boolean enable(Node[] activatedNodes) { Node node; if (activatedNodes != null && activatedNodes.length>0) node = activatedNodes[0]; else return false; DatabaseNodeInfo info = (DatabaseNodeInfo)node.getCookie(DatabaseNodeInfo.class); DatabaseNodeInfo nfo = info.getParent(DatabaseNode.CONNECTION); if (nfo != null) return (nfo.getConnection() == null); return false; } public void performAction(Node[] activatedNodes) { Node node; if (activatedNodes != null && activatedNodes.length>0) node = activatedNodes[0]; else return; try { DatabaseNodeInfo info = (DatabaseNodeInfo)node.getCookie(DatabaseNodeInfo.class); ConnectionNodeInfo nfo = (ConnectionNodeInfo)info.getParent(DatabaseNode.CONNECTION); Connection connection = nfo.getConnection(); if (connection != null) return; String drvurl = (String)nfo.get(DatabaseNodeInfo.DRIVER); String dburl = (String)nfo.get(DatabaseNodeInfo.DATABASE); String user = (String)nfo.getUser(); String pwd = (String)nfo.getPassword(); Boolean rpwd = (Boolean)nfo.get(DatabaseNodeInfo.REMEMBER_PWD); boolean remember = ((rpwd != null) ? rpwd.booleanValue() : false); if (user == null || pwd == null || !remember) { ConnectDialog dlg = new ConnectDialog(user); if (dlg.run()) { user = dlg.getUser(); nfo.setUser(user); pwd = dlg.getPassword(); nfo.setPassword(pwd); if (dlg.rememberPassword()) { nfo.put(DatabaseNodeInfo.REMEMBER_PWD, new Boolean(true)); } // Update option /* DatabaseConnection con = new DatabaseConnection(drvurl, dburl, user, null); Vector cons = RootNode.getOption().getConnections(); int idx = cons.indexOf(con); if (idx != -1) { con = (DatabaseConnection)cons.elementAt(idx); con.setUser(user); if (dlg.rememberPassword()) { con.setPassword(pwd); con.setRememberPassword(true); } else { con.setPassword(null); con.setRememberPassword(false); } } */ } else return; } nfo.connect(); } catch (Exception e) { TopManager.getDefault().notify(new NotifyDescriptor.Message("Unable to connect, "+e.getMessage(), NotifyDescriptor.ERROR_MESSAGE)); } } } /* * <<Log>> * 10 Gandalf 1.9 11/27/99 Patrik Knakal * 9 Gandalf 1.8 10/23/99 Ian Formanek NO SEMANTIC CHANGE - Sun * Microsystems Copyright in File Comment * 8 Gandalf 1.7 7/21/99 Slavek Psenicka update option off * 7 Gandalf 1.6 6/9/99 Ian Formanek ---- Package Change To * org.openide ---- * 6 Gandalf 1.5 5/21/99 Slavek Psenicka new version * 5 Gandalf 1.4 5/14/99 Slavek Psenicka new version * 4 Gandalf 1.3 4/23/99 Slavek Psenicka oprava activatedNode[0] * check * 3 Gandalf 1.2 4/23/99 Slavek Psenicka Debug mode * 2 Gandalf 1.1 4/23/99 Slavek Psenicka new version * 1 Gandalf 1.0 3/22/99 Slavek Psenicka * $ */